/*
 *           佛曰:
 *                   写字楼里写字间，写字间里程序员；
 *                   程序人员写程序，又拿程序换酒钱。
 *                   酒醒只在网上坐，酒醉还来网下眠；
 *                   酒醉酒醒日复日，网上网下年复年。
 *                   但愿老死电脑间，不愿鞠躬老板前；
 *                   奔驰宝马贵者趣，公交自行程序员。
 *                   别人笑我忒疯癫，我笑自己命太贱；
 *                   不见满街漂亮妹，哪个归得程序员？
 *
 * @Descripttion:
 * @version:
 * @Date: 2022-03-06 10:41:40
 * @LastEditors: huzhushan@126.com
 * @LastEditTime: 2022-04-29 12:07:15
 * @Author: huzhushan@126.com
 * @HomePage: https://huzhushan.gitee.io/vue3-element-admin
 * @Github: https://github.com/huzhushan/vue3-element-admin
 * @Donate: https://huzhushan.gitee.io/vue3-element-admin/donate/
 */

import Cookies from 'js-cookie'

// 获取顶级域名
let domain = location.hostname
// 如果`hostname`不是localhost也不是ip地址，那就是域名(本项目都使用二级域名)，并且截取出顶级域名
if (domain !== 'localhost' && !/(\d{1,3}\.){3}\d{1,3}/.test(domain)) {
  domain = domain.replace(/^[^\.]+/, '')
}

const TokenKey = 'TOKEN'

export function getToken() {
  return Cookies.get(TokenKey)
}

export function setToken(token, expires = 360) {
  return Cookies.set(TokenKey, token, { expires, path: '/', domain })
}

export function removeToken() {
  return Cookies.remove(TokenKey, { path: '/', domain })
}

export function getCookie(name) {
  return Cookies.get(name)
}

export function getCookieToJSON(name) {
  return Cookies.getJSON(name)
}

export function setCookie(name, value, expires = 360) {
  return Cookies.set(name, value, { expires, path: '/', domain })
}

export function removeCookie(name) {
  Cookies.remove(name, { path: '/', domain })
}
